#define _CRT_SECURE_NO_WARNINGS 1

#include <iostream>
#include <vector>
using namespace std;
#include "vector.h"

void test_vector1()
{
	vector<int> iv1;
	vector<int> iv2(10, 1);
	vector<int> iv3(++iv2.begin(), --iv2.end());
	vector<int>iv4(iv2);
}

void test_vector2()
{
	vector<int> iv2(10, 1);
	size_t i = 0;
	for (; i < iv2.size(); i++)
	{
		cout << iv2[i] << " ";
	}
	cout << endl;

	vector<int>::iterator vi = iv2.begin();
	while (vi != iv2.end())
	{
		cout << *vi << " ";
		++vi;
	}
	cout << endl;

	for (auto e : iv2)
	{
		cout << e << " ";
	}
	cout << endl;
}

void TestVectorExpand()
{
	size_t sz;
	vector<int> v;

	sz = v.capacity();
	cout << "capacity changed: " << sz << '\n';

	cout << "making v grow:\n";
	for (int i = 0; i < 100; ++i)
	{
		v.push_back(i);
		if (sz != v.capacity())
		{
			sz = v.capacity();
			cout << "capacity changed: " << sz << '\n';
		}
	}
}

void test_vector3()
{
	//TestVectorExpand();
	vector<int> iv(10, 1);
	cout << iv.size() << endl;
	cout << iv.capacity() << endl << endl;

	iv.reserve(100);
	cout << iv.size() << endl;
	cout << iv.capacity() << endl << endl;

	iv.reserve(15);
	cout << iv.size() << endl;
	cout << iv.capacity() << endl << endl;

	iv.reserve(5);
	cout << iv.size() << endl;
	cout << iv.capacity() << endl << endl;
}

void test_vector4()
{
	vector<int> iv(5, 1);
	for (auto e : iv)
	{
		cout << e << " ";
	}
	cout << endl;

	iv.insert(iv.begin(),2);
	for (auto e : iv)
	{
		cout << e << " ";
	}
	cout << endl;

	iv.insert(iv.end(), 2, 3);
	for (auto e : iv)
	{
		cout << e << " ";
	}
	cout << endl;
}
	
void test_vector5()
{
	vector<int> iv(5,0);

	size_t i = 0;
	for (; i < iv.size(); ++i)
	{
		cin >> iv[i];
	}

	for (auto e : iv)
	{
		cout << e << " ";
	}
	cout << endl;
}

void test_vector6()
{
	/*vector<string> sv;
	sv.push_back("11111111111");
	sv.push_back("xxxxxxx");
	sv.push_back("t");
	sv.push_back("hello world");

	for (auto e : sv)
	{
		cout << e << endl;
	}*/

	vector<int> v(5, 1);
	vector<vector<int>> vv(10,v);

	for (size_t i = 0; i < vv.size(); ++i)
	{
		for (size_t j = 0; j < vv[i].size(); ++j)
		{
			cout << vv[i][j] << " ";
		}
		cout << endl;
	}
	cout << endl;

	vv[2][1] = 2;

	for (size_t i = 0; i < vv.size(); ++i)
	{
		for (size_t j = 0; j < vv[i].size(); ++j)
		{
			cout << vv[i][j] << " ";
		}
		cout << endl;
	}
	cout << endl;

	//int** aa = (int**)malloc(sizeof(int*) * numRows);
	////检查
	////...
	//for (int i = 0; i < numRows; ++i)
	//{
	//	aa[i] = (int*)malloc(sizeof(int) * (i + 1));
	//	//检查
	//	//...
	//}
}

int main()
{
	xsc::test_vector7();

	return 0;
}

//#include <iostream>
//#include <vector>
using namespace std;

size_t Get_same()
{
	//获取数据
	int m = 0;
	int n = 0;
	cin >> m >> n;

	vector<int> mv(m);
	vector<int> nv(n);
	size_t i = 0;
	for (; i < mv.size(); ++i)
	{
		cin >> mv[i];
	}
	for (i = 0; i < nv.size(); ++i)
	{
		cin >> nv[i];
	}
	size_t count = 0;
	for (auto e1 : mv)
	{
		for (auto e2 : nv)
		{
			if (e1 == e2)
			{
				count++;
				break;
			}
		}
	}

	return count;
}

//int main()
//{
//	size_t ans = Get_same();
//	cout << ans << endl;
//}

//int main()
//{
//	//test_vector5();
//
//	//size_t ans = Get_same();
//	//cout << ans << endl;
//
//	char ch = 0;
//	cin >> ch;
//	ch -= 32;
//	cout << ch<< endl;
//
//
//	return 0;
//}


//#include <iostream>
#include <string>
#include <cmath>
//using namespace std;

//int main()
//{
//	/*double d = 0.0;
//	cin >> d;
//	string sd = to_string(d);
//	reverse(sd.begin(), sd.end());
//	d = stod(sd);
//	cout << d << endl;*/
//
//	/*string a;
//	cin >> a;
//	reverse(a.begin(), a.end());
//	cout << a << endl;*/
//
//
//	double a;
//	double b;
//	double c;
//	cin >> a >> b >> c;
//	double p = (a + b + c) * 0.5;
//	double middle = p * (p - a) * (p - b) * (p - c);
//	double area = sqrt(middle);
//	printf("%.1f\n", area);
//	return 0;
//}


//#include <iostream>
//#include <vector>
//using namespace std;
//
//int main()
//{
//	int n = 0;
//	int k = 0;
//	cin >> n >> k;
//
//	vector<int> iv(n);
//	for (size_t i = 0; i < iv.size(); ++i)
//	{
//		cin >> iv[i];
//	}
//
//	size_t count = 0;
//	for (size_t i = 0; i < iv.size(); ++i)
//	{
//		for (size_t j = 0; j < iv.size(); ++j)
//		{
//			if (iv[i] != iv[j]
//				&& i < j
//				&& iv[i] * iv[j] <= k)
//			{
//				count++;
//				cout << iv[i] << "," << iv[j] << endl;;
//			}
//		}
//	}
//	cout << count << endl;
//
//	return 0;
//}

//#include <iostream>
//using namespace std;
//
//int main()
//{
//	size_t T = 0;
//	cin >> T;
//	size_t a = 0;
//	size_t p = 0;
//	while (cin >> a >> p)
//	{
//		if (p < 16)
//		{
//			a -= 10;
//		}
//		while (p > 20)
//		{
//			a -= 1;
//			--p;
//		}
//		cout << a << endl;
//	}
//
//	return 0;
//}

//#include <iostream>
//#include <string>
//using namespace std;
//
//int main()
//{
//	string s;
//	cin >> s;
//	int count = 0;
//	size_t pos = s.find("chuanzhi");
//	while (pos != string::npos)
//	{
//		count++;
//		pos = s.find("chuanzhi", pos + 8);
//	}
//	cout << count << endl;
//
//	return 0;
//}


//#include <iostream>
//using namespace std;
//
//int main()
//{
//	int n = 0;//共m个人
//	int v = 0;//起始价格
//	int m = 0;//每增加m个人
//	int a = 0;//就增加a元
//	cin >> n >> v >> m >> a;
//
//	int money = 0;
//	int flag = 0;
//	for (size_t i = 1; i <= n; ++i)
//	{
//		money += v;
//		flag++;
//		if (flag == m)
//		{
//			v += a;
//			flag = 0;
//		}
//	}
//
//	cout << money << endl;
//
//	return 0;
//}